package br.com.stefanini.ejb.sessionBean;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.com.sfs.ejb.entity.Postagem;
import br.com.sfs.ejb.entity.Usuario;

@Stateless
public class PostagemSessionBean {
	
	public PostagemSessionBean (){
		
	}
	
	
	@PersistenceContext
	private EntityManager entityManager;
	
	private String assunto;
	
	public void inserirPostagem (Postagem postagem){
        
        Usuario usuario = entityManager.find(Usuario.class,postagem.getUsuario().getIdUsuario());
        
        if(usuario!=null){
                postagem.setUsuario(usuario);
                this.entityManager.persist(postagem);
        }
}
	
	@SuppressWarnings("unchecked")
	public List<Postagem> listarTodasPostagems (){
		
		Query query = entityManager.createNamedQuery("Postagem.consultarTodasPostagens");
		
		try {
			return query.getResultList();
		} catch (Exception e) {
			return null;
		}
		
	}
	
	@SuppressWarnings("unchecked")
	public List<Postagem> listarPostagensPorAssunto (String assunto){
		
		Query query = entityManager.createNamedQuery("Postagem.consultarPostagensPorAssunto");
		query.setParameter("assunto", assunto);
		
		try {
			return query.getResultList();
		} catch (Exception e) {
			return null;
		}
	}
	
	@SuppressWarnings("unchecked")
	public List<Postagem> listarTodosAssuntos (){
		Query query = entityManager.createNamedQuery("Postagem.consultarAssuntos");
		try {
			return query.getResultList();
		} catch (Exception e) {
			return null;
		}
	}
	
	@SuppressWarnings("unchecked")
	public List<Postagem> listarPostagemPorTitulo (String titulo){
		
		Query query = entityManager.createNamedQuery("Postagem.consultarPorTitulo");
		query.setParameter("titulo",'%'+ titulo+'%');
		
		try {
			return query.getResultList();
		} catch (Exception e) {
			return null;
		}
	}
	public String getAssunto() {
		return assunto;
	}

	public void setAssunto(String assunto) {
		this.assunto = assunto;
	}

}
